package cn.tedu.api;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Date：2021年10月
 * Author：程Sir
 * Name： JavaSE-API
 * Content:
 *      Collection是集合接口的，通常应用的派生子接口有List【有序，可重复的】和Set【无序，不可重复的】
 *          list的实现类：ArrayList 、LikedList
 *          set的实现类：HashSet、TreeSet
 *      Map也是集合接口，特点是：键值对的形式来存储数据
 *          实现类：HashMap、TreeMap
 *
 *
 */
public class CollectionDemo {

    public static void main(String[] args) {
        // 创建集合对象
        Collection collection = new ArrayList();
        /*
            int size();  返回集合中的元素个数
         */
        System.out.println(collection.size()); // 0

        /*
            boolean add(E e); 把给定的对象添加到当前的集合中，添加成功返回true，反之返回false
            boolean addAll(Collection c)； 将给定集合的所有元素添加到当前集合中
         */
        collection.add("12");
        collection.add("张三");
        collection.add(123);
        collection.add(123.123);
        collection.add(new int[]{10, 20, 30});

        System.out.println(collection);
        System.out.println(collection.size()); // 5
        System.out.println("======================");
        Collection cc = new ArrayList();
        cc.add("12");
        cc.add("123");
        cc.add("张飞");
        cc.add("刘备");
        cc.add("关羽");
        collection.addAll(cc);
        System.out.println("添加集合cc元素之后："+collection);

        cc.addAll(collection);
        System.out.println("添加集合collection元素之后："+cc);

        /*
            boolean isEmpty(); 判断当前的集合是否为空
         */
        boolean flag = collection.isEmpty();
        System.out.println(flag);

        /*
            boolean contains(Object o); 判断当前集合是否包含指定对象的
            boolean containsAll(Collection c);判断当前集合是否包含子集合
         */
        flag = collection.contains("12");
        System.out.println("是否包含指定对象："+flag);

        /*
            Object[] toArray(); 将当前的集合转换为object对象数组
         */
        Object[] objects = collection.toArray();
        for (int i = 0; i <objects.length ; i++) {
            System.out.println(objects[i]);
        }

        /*
            boolean remover(Object o); 将给定的对象从集合中移除
            boolean removerAll(Colletion c); 将给定的子集从当前的集合中移除
         */
        flag = collection.remove("张三");
        System.out.println("====================");
        System.out.println("移除的结果是："+flag);
        System.out.println(collection);

        // 定义一个子集
        Collection c = new ArrayList();
        c.add("12");
        c.add(123);
        System.out.println("=======================");
        flag = collection.containsAll(c);
        System.out.println("当前集合是否包含子集："+flag);
        // 将子集从集合中进行删除
        flag = collection.removeAll(c);
        System.out.println("是否将子集移除："+flag);
        System.out.println(collection);

        /*
            void clear(); 清空集合中的所有元素
         */
        collection.clear();
        System.out.println("===============");
        System.out.println(collection.size()); // 如果长度为0 ，说明元素全部清楚了
        System.out.println(collection);




    }

}
